/*
*
* This file is part of Luces de 1984 SDL version (L1-sdl).
* Copyright (C) <2017>  <alkeon> [alkeon@autistici.org]
   
* L1-sdl is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L1-sdl is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with l1-sdl.  If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef CLASE_PRINCIPAL
#define CLASE_PRINCIPAL
#include <string>
#include "personajes.h"
#include "SDL.h"
#include "SDL_ttf.h"
struct juego{
	int guardados_automaticos;
	int panel[9];
	int panel_resuelto;
	std::string version;
	std::string texto[17];
	Personaje* pepe;
	juego();
	~juego();

	SDL_Window * ventana=NULL;
	SDL_Renderer * render=NULL;
	TTF_Font * font=NULL;
	SDL_Color blanco = { 255, 255, 255, 255 };

	//Funciones importantes de inicio
	void vista_previa_partida(std::string partida_carga);
	void laberinto_generador(Personaje& v, Personaje& h);
	void inicio();
	void logo();
	void escoger_opciones(Personaje& v, Personaje& h);
	void printa(std::string linea);
	void escoger_nombre(Personaje& v, Personaje& h);
	void opcion_nombre(Personaje& v, Personaje& h);
	void opcion_guardado(Personaje& v, Personaje& h);
	void pausa();
	void menu(Personaje& v, Personaje& h);
	void tutorial();
	void creditos(Personaje& v);
	void guardar(std::string guardar,Personaje& v);
	void cargarcompleto(std::string partida,Personaje& v,Personaje& h);
	void cargarnivel(Personaje& v,Personaje& h);


	//Funciones parte A

	void preguntas_principales(Personaje& v,Personaje& h);
	void pelea_stats(Personaje& v, Personaje& h);
	void pelea(Personaje& v,Personaje& h);
	void peli(Personaje& v, Personaje& h);
	void reflexion(Personaje& v, Personaje& h);
	void continuacion_reflexion(Personaje& v, Personaje& h);
	void interrogatorio(Personaje& v, Personaje& h);
	void continuacion_interroga(Personaje& v,Personaje& h);
	void asesinato(Personaje& v,Personaje& h);
	void huida(Personaje& v, Personaje& h);
	void provisiones(Personaje& v, Personaje& h);
	void vuelta();
	void ira(Personaje& v, Personaje& h);
	void escaleras(Personaje& v,Personaje& h);
	void huir(Personaje& v, Personaje& h);
	void asesinar(Personaje& v,Personaje& h);
	void asesinar_camino(Personaje& v, Personaje& h);
	void flashback(Personaje& v, Personaje& h);
	void ahogo(Personaje& v, Personaje& h);
	void informacion(Personaje& v,Personaje& h);
	void jefe(Personaje& v, Personaje& h);
	void conseguir_info(Personaje& v, Personaje& h);
	void usas_un_ordenador(Personaje& v, Personaje& h);
	void usando_un_ordenador(Personaje& v, Personaje& h);

	//Funciones parte B
	
	void falso(Personaje& v,Personaje& h);
	void caida_tonta(Personaje& v, Personaje& h);
	void poli_distraido(Personaje& v, Personaje& h);
	void huida_ruidosa(Personaje& v ,Personaje& h);
	void pegas_polis(Personaje& v, Personaje& h);
	void ayudas_prisioneros(Personaje& v, Personaje& h);
	void contrasena(Personaje& v, Personaje& h);
	void puerta_abierta(Personaje& v,Personaje& h);
	void vuelves(Personaje& v,Personaje& h);
	void resolver_panel(Personaje& v, Personaje& h);
	void psicosis(Personaje& v, Personaje& h);	
	void soledad(Personaje& v, Personaje& h);
	void fallo_f2(Personaje& v, Personaje& h);
	void non_plus_ultra(Personaje& v, Personaje& h);
	void ordenador_central(Personaje& v, Personaje& h);
	void warwick_manda(Personaje& v, Personaje& h);
	void objetivo_francotirador(Personaje& v, Personaje& h);
	void crear_panel(Personaje& v, Personaje& h);
	void panel_terminal(Personaje& v, Personaje& h);
	void comprobacion_panel(Personaje& v,Personaje& h);
	void panel_grafico(Personaje& v, Personaje& h);
	void muerte_al_francotirador(Personaje& v, Personaje& h);
	void pasas(Personaje& v, Personaje& h);
	void coges_todo(Personaje& v, Personaje& h);
	void ayudantes_cerradura(Personaje& v, Personaje& h);
	void hacia_el_exterior(Personaje& v, Personaje& h);
	void conversacion(Personaje& v, Personaje& h);
	void fallo_f(Personaje& v, Personaje& h);
};
#endif
